package org.gfix.binding;

import java.math.BigDecimal;

import org.gfix.annotation.FixBinding;
import org.gfix.annotation.FixBindingSet;
import org.gfix.annotation.FixFormatter;
import org.gfix.types.FixVersion;

/**
 * A simple POJO to test the basic binding annotations
 * and the processing framework
 * @author alan
 *
 */
public class SimpleBoundType {

	// each primitive type
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=61,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=71,formatter=@FixFormatter)
	})
	private boolean booleanType;
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=62,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=70,formatter=@FixFormatter)
	})
	private char characterType;
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=63,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=69,formatter=@FixFormatter)
	})
	private byte byteType;
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=64,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=68,formatter=@FixFormatter)
	})
	private short shortType;
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=65,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=67,formatter=@FixFormatter)
	})
	private int integerType;
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=66,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=66,formatter=@FixFormatter)
	})
	private long longType;
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=67,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=65,formatter=@FixFormatter)
	})
	private float floatType;
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=68,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=64,formatter=@FixFormatter)
	})
	private double doubleType;
	
	// other common type
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=69,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=63,formatter=@FixFormatter)
	})
	private String stringType;
	
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=70,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=62,formatter=@FixFormatter)
	})
	private BigDecimal bigDecimalType;
	
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=71,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=61,formatter=@FixFormatter)
	})
	private FixVersion version;
	
	@FixBindingSet(fixBindings=
	{
		@FixBinding(fixVersion=FixVersion.FIX_40, fixTag=72,formatter=@FixFormatter),
		@FixBinding(fixVersion=FixVersion.FIX_41, fixTag=60,formatter=@FixFormatter)
	})
	private SimpleEnumType simpleEnumType;
	
	
	public boolean isBooleanType() {
		return booleanType;
	}
	public void setBooleanType(boolean booleanType) {
		this.booleanType = booleanType;
	}
	public char getCharacterType() {
		return characterType;
	}
	public void setCharacterType(char characterType) {
		this.characterType = characterType;
	}
	public byte getByteType() {
		return byteType;
	}
	public void setByteType(byte byteType) {
		this.byteType = byteType;
	}
	public short getShortType() {
		return shortType;
	}
	public void setShortType(short shortType) {
		this.shortType = shortType;
	}
	public int getIntegerType() {
		return integerType;
	}
	public void setIntegerType(int integerType) {
		this.integerType = integerType;
	}
	public long getLongType() {
		return longType;
	}
	public void setLongType(long longType) {
		this.longType = longType;
	}
	public float getFloatType() {
		return floatType;
	}
	public void setFloatType(float floatType) {
		this.floatType = floatType;
	}
	public double getDoubleType() {
		return doubleType;
	}
	public void setDoubleType(double doubleType) {
		this.doubleType = doubleType;
	}
	public String getStringType() {
		return stringType;
	}
	public void setStringType(String stringType) {
		this.stringType = stringType;
	}
	public BigDecimal getBigDecimalType() {
		return bigDecimalType;
	}
	public void setBigDecimalType(BigDecimal bigDecimalType) {
		this.bigDecimalType = bigDecimalType;
	}
	public FixVersion getVersion() {
		return version;
	}
	public void setVersion(FixVersion version) {
		this.version = version;
	}
	public SimpleEnumType getSimpleEnumType() {
		return simpleEnumType;
	}
	public void setSimpleEnumType(SimpleEnumType simpleEnumType) {
		this.simpleEnumType = simpleEnumType;
	}
	
}
